package com.yehuishou.controller;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yehuishou.pojo.LeaseItem;
import com.yehuishou.pojo.Xianshiqi;
import com.yehuishou.service.LeaseItemService;

/**
 * 商品租赁
 * 
 * @author zxb
 * 
 */
@Controller
public class LeaseItemController {

	@Autowired
	private LeaseItemService leaseItemService;

	/**
	 * 分页查询所有
	 * 
	 * @param pageNum
	 * @param pageSize
	 * @param sip
	 * @param model
	 * @return
	 */
	@RequestMapping("content-1_3")
	public String leaseList(@RequestParam(required = true, defaultValue = "1") Integer pageNum,
			@RequestParam(required = true, defaultValue = "10") Integer pageSize, Model model) {
		PageHelper.startPage(pageNum, pageSize);
		List<LeaseItem> list = leaseItemService.findAll();
		PageInfo<LeaseItem> p = new PageInfo<LeaseItem>(list);
		model.addAttribute("page", p);
		model.addAttribute("list", list);
		/*
		 * List<Classify> lis=sellitemservice.selclassify(); model.addAttribute("lis",
		 * lis); model.addAttribute("sip", sip);
		 */
		return "content-1_3";
	}

	// 跳转到租赁商品添加
	@RequestMapping("leaseitem-add")
	public String leaseitem(Model model) {
		/*
		 * List<Classify> classify=sellitemservice.selclassify(); Integer
		 * cid=classify.get(0).getCid(); List<Brand>
		 * brand=sellitemservice.selbrand(cid); Integer pid=brand.get(0).getPid();
		 * List<Models> modes = sellitemservice.selmodel(pid);
		 * model.addAttribute("classify", classify); model.addAttribute("brand", brand);
		 * model.addAttribute("model", modes);
		 */
		return "leaseitem-add";
	}

	// 套餐名不能重复
	@ResponseBody
	@RequestMapping("findcname")
	public Map<String, Object> findcname(String combo_name) {
		Map<String, Object> map = new HashMap<>();
		LeaseItem leaseitem = leaseItemService.findcname(combo_name);
		if (leaseitem != null) {
			map.put("msg", "套餐名已存在");
			map.put("success", false);
		} else {
			map.put("success", true);
		}
		return map;
	}

	// 租赁商品添加
	@RequestMapping("leaseitemadd")
	public String leaseitemAdd(LeaseItem leaseitem, MultipartFile image) throws Exception {
		String img = scImage(image);
		leaseitem.setImg(img);
		Double a = leaseitem.getZheko();
		leaseitem.setZheko(a / 100);
		leaseItemService.save(leaseitem);
		return "redirect:/content-1_3";
	}

	// 上传图片
	public String scImage(MultipartFile image) throws IOException {
		String rootPath = "/upload/";
		String model = "public";
		// 获取图片的原始名称
		String ordName = image.getOriginalFilename();
		// 组装文件储存路径
		String filepath = rootPath + model + File.separator;
		// 创建目录
		File f = new File(filepath);
		if (!f.exists()) {
			f.mkdirs();
		}
		// 生成一个新的不会重复的文件名
		// 1.获取后缀
		String suffix = FilenameUtils.getExtension(ordName);
		// 生成新的文件名
		String newName = UUID.randomUUID().toString() + "." + suffix;
		// 把上传的文件储存指定位置
		image.transferTo(new File(f, newName));// 文件上传
		String FilePath = rootPath + model + File.separator + newName;// 文件路径
		FilePath = FilePath.replace("\\", "/");
		return FilePath;
	}

	// 删除套餐
	@ResponseBody
	@RequestMapping("deleleaseitem")
	public boolean deleleaseitem(Integer rid) {
		leaseItemService.del(rid);
		return true;
	}

	// 跳转修改套餐
	@RequestMapping("leaseitem-edit")
	public String leaseiteme(Integer rid, Model model) {
		LeaseItem leaseItem = leaseItemService.findById(rid);
		Double a = leaseItem.getZheko();
		leaseItem.setZheko(a * 100);
		model.addAttribute("leaseitem", leaseItem);
		return "leaseitem-edit";
	}

	//修改套餐
	@RequestMapping("leaseitemedit")
	public String leaseitemedit(LeaseItem leaseitem, MultipartFile image) throws IOException {
		String img =null ;
		if(image.getSize() != 0) {
			img = scImage(image);
		}
		Double a = leaseitem.getZheko();
		leaseitem.setZheko(a/100);
		leaseitem.setImg(img);
		leaseItemService.update(leaseitem);

		return "redirect:/content-1_3";
	}
	
	
	//查询显示器
	@RequestMapping("xianshiqi")
	public String findXSQAll(Model model) {
		List <Xianshiqi> list = leaseItemService.findXSQAll();
		model.addAttribute("list", list);
		return "xianshiqi";
	}
	
	//跳转添加
	@RequestMapping("xsqadd")
	public String addXSQ() {
		
		return "xsqadd";
	}
	
	//添加显示器
	@ResponseBody
	@RequestMapping("xsqsave")
	public boolean saveXSQ(Xianshiqi xsq) {
		leaseItemService.saveXSQ(xsq);
		return true;
	}
	
	//跳转修改
	@RequestMapping("xsqdeit")
	public String upXSQ(Integer id , Model model) {
		Xianshiqi xsq = leaseItemService.findXSQById(id);
		model.addAttribute("xsq", xsq);
		return "xsqdeit";
	}
	
	//修改显示器 updateXSQ
	@ResponseBody
	@RequestMapping("xsqupdate")
	public boolean updateXSQ(Xianshiqi xsq) {
		leaseItemService.updateXSQ(xsq);
		return true;
	}
	
	//删除显示器 delXSQ
	@ResponseBody
	@RequestMapping("xsqdel")
	public boolean delXSQ(Integer id) {
		leaseItemService.delXSQ(id);
		return true;
	}

}
